Modern data networks may carry packets for various types of services. These services include video, voice, web pages, streaming audio, webcasts, shared desktops, web browsing, and email. Each of the services may have different quality of service (QoS) requirements. For example, email generally requires a guarantee that each packet is delivered to the ultimate destination because a lost packet may garble the message. In addition, email does not particularly care how fast the packets are delivered because most email accounts are only checked occasionally. In contrast, a voice service (such as voice over internet protocol—VoIP) can usually tolerate the loss of an occasional packet. A voice service also needs timely delivery of packets or gaps in the conversation will be heard.
To accommodate the different needs of different network carried services, several standards have been drafted. For example, the Internet Engineering Task Force (IETF) has published several documents describing a mechanism for classifying, managing network traffic, and providing quality of service guarantees collectively referred to as DiffServ. DiffServ is further described in RFC-2474, RFC-2475, RFC-2597, and RFC-3246. These documents are available from the IETF at http://www.ietf.org/. Other QoS mechanism have also been proposed by the IETF such as “integrated services” (IntServ). Other entities have also specified QoS mechanisms for networks such as the flow classifications documented in the Institute of Electrical and Electronics Engineers (IEEE) 802.16 (WiMax) standards.
Overview
A method of optimizing data communication is disclosed. A first block of packets is sent through a network at a first throughput rate. The first block of packets has a differential treatment field set to a first value. A second block of packets is sent through the network at a second throughput rate. The second block of packets has the differential treatment field set to a second value. A first report indicating that the reception of the first block of packets satisfies a criteria is received. A second report indicating that the reception of the second block of packets satisfies the criteria is received. A treatment field value for the differential treatment field is selected based on the first report and the second report. A packet with the differential treatment field set to the treatment field value is sent to the network.
A first plurality of blocks is iteratively sent through a network. The first plurality of blocks of packets have a differential treatment field set to a first value. The different iterations of sending the first plurality of blocks of packets are sent at different throughput rates. A first plurality of reports corresponding to each iteration (i.e., each throughput rate) that indicate whether the reception of each of the first plurality of blocks of packets satisfied a criteria is received. A first throughput rate associated with the first value is selected based on the first plurality of reports. A second plurality of blocks is iteratively sent through a network. The second plurality of blocks of packets have a differential treatment field set to a second value. The different iterations of sending the second plurality of blocks of packets are sent at different throughput rates. A second plurality of reports corresponding to each iteration (i.e., each throughput rate) that indicate whether the reception of each of the second plurality of blocks of packets satisfied the criteria is received. A second throughput rate associated with the second value is selected based on the second plurality of reports. The differential treatment field in a packet is set to the first value based on the first throughput rate and the second throughput rate.